package com.egao.common.module.world.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.egao.common.core.web.JsonResult;
import com.egao.common.core.web.PageParam;
import com.egao.common.module.system.entity.User;
import com.egao.common.module.world.entity.WorldGameStudent;
import com.egao.common.module.world.vo.WorldGameStudentBtn;
import com.egao.common.module.world.vo.WorldGameStudentVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * WorldGameStudent Service
 * @author root
 */
public interface WorldGameStudentService extends IService<WorldGameStudent> {

    /**
     * 查询列表
     * @param page
     * @return
     */
    List<WorldGameStudent> listPage(PageParam<WorldGameStudent> page);

    /**
     * 修改获奖信息
     * @param worldGameStudent
     * @return
     */
    JsonResult updatePrize(WorldGameStudent worldGameStudent);

    /**
     * 修改比赛状态
     * @param worldGameStudent
     * @return
     */
    JsonResult updateGameState(WorldGameStudent worldGameStudent);

    /**
     * 初始化学生报名按钮
     * @param worldGameId 济世杯主键ID
     * @param user 学生用户
     * @return
     */
    WorldGameStudentBtn initBtn(Integer worldGameId, User user);

    /**
     * 学生报名
     * @param worldGameStudent
     * @return
     */
    JsonResult apply(WorldGameStudent worldGameStudent, User user);

    /**
     * 学生取消报名
     * @param worldGameStudent
     * @return
     */
    JsonResult cancel(WorldGameStudent worldGameStudent);

    /**
     * 导入报名学生比赛状态
     * @param file 上传的excel
     * @param worldGameId 济世杯ID
     * @return JsonResult
     */
    JsonResult importStudentGameState(MultipartFile file, Integer worldGameId);

    /**
     * 导入报名学生获奖状态
     * @param file 上传的excel
     * @param worldGameId 济世杯ID
     * @param loginUserId 操作人用户ID
     * @return JsonResult
     */
    JsonResult importStudentPrizeLevel(MultipartFile file, Integer worldGameId, Integer loginUserId);
}
